file chooser portal: use request path utilities
authorMatthias Clasen <mclasen@redhat.com>
Thu, 30 Aug 2018 17:13:45 +0000 (13:13 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 31 Aug 2018 03:10:13 +0000 (23:10 -0400)
Less code duplication, more sticky toffee!

gtk/gtkfilechoosernativeportal.c

index b6fa011b5380982b93e6a8bff81a53df55e78733..f22d734f5af61f365e75c2cfd7b9d7195dd421f0 100644 (file)
@@ -296,23 +296,13 @@ show_portal_file_chooser (GtkFileChooserNative *self,
   gboolean multiple;
   const char *title;
   char *token;
-  char *sender;
-  int i;
 
   message = g_dbus_message_new_method_call ("org.freedesktop.portal.Desktop",
                                             "/org/freedesktop/portal/desktop",
                                             "org.freedesktop.portal.FileChooser",
                                             data->method_name);
 
-  token = g_strdup_printf ("gtk%d", g_random_int_range (0, G_MAXINT));
-  sender = g_strdup (g_dbus_connection_get_unique_name (data->connection) + 1);
-  for (i = 0; sender[i]; i++)
-    if (sender[i] == '.')
-      sender[i] = '_';
-
-  data->portal_handle = g_strdup_printf ("/org/fredesktop/portal/desktop/request/%s/%s", sender, token);
-  g_free (sender);
-
+  data->portal_handle = gtk_get_portal_request_path (data->connection, &token);
   data->portal_response_signal_id =
         g_dbus_connection_signal_subscribe (data->connection,
                                             "org.freedesktop.portal.Desktop",